Add dependencies field to Package Details#3822
Conversation
|
Vcpkg can do this too, see https://learn.microsoft.com/en-us/vcpkg/commands/depend-info |
|
doesn't the json provide the top-level list? For me it worked (see the commit above) |
There was a problem hiding this comment.
Pull Request Overview
Adds a new Dependencies section to package details by extending the data model, updating each manager to list and parse dependencies, and wiring it through the UI.
- Introduce a
Dependenciesproperty onIPackageDetailsand its implementation - Enable
CanListDependenciesand implement parsing in all package managers - Extend
PackageDetailsPageXAML and code-behind to display dependency information
Reviewed Changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml.cs | Added dependency UI elements and loading logic |
| src/UniGetUI/Pages/DialogPages/PackageDetailsPage.xaml | Inserted Dependencies_Label and DependenciesParagraph |
| src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/Classes/PackageDetails.cs | Added Dependencies property |
| src/UniGetUI.PackageEngine.Enums/ManagerCapabilities.cs | Added CanListDependencies capability flag |
| src/UniGetUI.PAckageEngine.Interfaces/IPackageDetails.cs | Added Dependencies member and Dependency struct |
| src/UniGetUI.PackageEngine.Managers.WinGet/WinGet.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs | Implemented raw-output dependency parsing |
| src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/BundledWinGetHelper.cs | Implemented bundled dependency parsing |
| src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.Vcpkg/Helpers/VcpkgPkgDetailsHelper.cs | Implemented Vcpkg dependency parsing |
| src/UniGetUI.PackageEngine.Managers.Scoop/Scoop.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.Scoop/Helpers/ScoopPkgDetailsHelper.cs | Implemented Scoop dependency parsing (_getDepends, _getSuggests) |
| src/UniGetUI.PackageEngine.Managers.PowerShell7/PowerShell7.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.PowerShell/PowerShell.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.Pip/Pip.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.Pip/Helpers/PipPkgDetailsHelper.cs | Implemented Pip dependency parsing |
| src/UniGetUI.PackageEngine.Managers.Npm/Npm.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.Npm/Helpers/NpmPkgDetailsHelper.cs | Implemented NPM dependency parsing |
| src/UniGetUI.PackageEngine.Managers.Generic.NuGet/BaseNuGetDetailsHelper.cs | Added regex-based dependency parsing |
| src/UniGetUI.PackageEngine.Managers.Generic.NuGet/BaseNuGet.cs | Validates CanListDependencies in initializer |
| src/UniGetUI.PackageEngine.Managers.Dotnet/DotNet.cs | Enabled CanListDependencies |
| src/UniGetUI.PackageEngine.Managers.Chocolatey/Chocolatey.cs | Enabled CanListDependencies |
Comments suppressed due to low confidence (3)
src/UniGetUI.PackageEngine.Managers.Scoop/Helpers/ScoopPkgDetailsHelper.cs:167
- [nitpick] Method
_getSuggestsuses a leading underscore and camelCase, which is inconsistent with PascalCase naming conventions. Consider renaming toGetSuggests.
private static void _getSuggests(IPackageDetails details, JsonObject? contents)
src/UniGetUI.PackageEngine.Managers.Generic.NuGet/BaseNuGetDetailsHelper.cs:110
- The new regex-based dependency parsing is untested; add unit tests that cover various
<d:Dependencies>formats to ensure correct behavior.
details.Dependencies.Clear();
src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs:424
- The loop variable is named
__line, but this condition referencesline, which is undefined. It should use__lineconsistently.
else if (line.Contains("- Package Dependencies"))
|
Sorry, that commit hadn't loaded when I made the comment. I just wanted to make sure vcpkg was included :). |
Add a
Dependenciesfield on Package Detailsfix #602
fix #1306